package com.ds.infra.rpc.core.loadbalance;

import com.ds.infra.rpc.registry.model.ServiceInstance;

import java.util.List;

/**
 * 作用：RPC负载均衡策略接口
 *
 * @author WeiShaoying
 */
import java.util.Map;

/**
 * 负载均衡策略接口
 */
public interface LoadBalance {

    /**
     * 从服务列表中选择一个实例
     *
     * @param instances 可用服务实例列表
     * @return 选中的服务实例
     */
    Map<String, Object> select(List<Map<String, Object>> instances);

    ServiceInstance selectInstance(List<ServiceInstance> instances);
}
